package testCase.module1;

import org.json.JSONObject;
import android.util.Log;
import apis.LoginApis;
import testCase.HeadTestCase;
import utils.GetJsonValue;
import utils.MyTestResult;
import utils.UserInfo_Properties;
import utils.Util;

public class NO_006_NormalLogin extends HeadTestCase {

	MyTestResult t = new MyTestResult();
	GetJsonValue g = new GetJsonValue();
	Util util = new Util();

	public NO_006_NormalLogin() {
		try {
			super.setUp();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 正常登陆操作<br>
	 * 登录前先通过接口获取即将登录的账户的角色字段和用户名字段为空<br>
	 * 
	 * 角色为空，用户名为空：进入选择角色界面<br>
	 * 角色不为空，用户名为空，进入完善资料界面<br>
	 * 角色不为空，用户名不为空，直接进入对应身份的班级列表界面<br>
	 * 
	 * @throws Exception
	 */
	public void test_001_Login() throws Exception {

		JSONObject jo_name;
		String name = "1";
		String user_type = "2";

		Log.d(TAG, solo.waitForText("^开始使用$") + "++" + getName());

		// 通过登录接口返回的数据，获取用户名，和当前角色
		jo_name = LoginApis.login(
				UserInfo_Properties.getValue(UserInfo_Properties.MANERGERTEACHER_PHONENUMBER),
				UserInfo_Properties.TestCode);
		name = g.getValue(jo_name.toString(), "name");
		user_type = g.getValue(jo_name.toString(), "user_type");
		Log.d(TAG, "name=" + name);
		Log.d(TAG, "user_type=" + user_type);

		entrance.getStart_Page().click_btn_start();
		solo.sleep(500);
		Log.e(TAG, "wait for view:" + solo.waitForView(entrance.getLogin_page().getBtn_ok()));

		entrance.getLogin_page().enter_PhoneNumber(
				UserInfo_Properties.getValue(UserInfo_Properties.MANERGERTEACHER_PHONENUMBER));
		entrance.getLogin_page().click_btn_verify();

		if (solo.waitForView(entrance.getLogin_page().getbtn_left())) {
			solo.clickOnText("^是$");
		} else {
			t.printTestResultToExcel(cl_Name + getName(), "正确的电话号码,点击验证码按钮", "弹出确认电话号码提示", "fail");
			Log.e(TAG, "未弹出确认电话号码提示");
			assertTrue(false);
		}

		entrance.getLogin_page().enter_verifyCode(UserInfo_Properties.TestCode);
		if (!entrance.getLogin_page().getBtn_ok().isEnabled()) {
			Log.e(TAG, cl_Name + ":确定按钮无法点击");
			t.printTestResultToExcel(cl_Name + getName(), "输入正确的手机号和正确的验证码，验证确定按钮状态", "可以点击", "fail");
			assertTrue(false);
		} else {
			entrance.getLogin_page().clickOn_BtOk();
			Log.d(TAG, "点击登录按钮");
		}
		/*
		 * 对于登录后界面的各种判断
		 */
		if (user_type.equals("0")) {

			if (solo.waitForActivity("PersonInfoPerfectionActivity") && solo.waitForText("^选择您的身份$")) {
				Log.d(TAG, "登录成功");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=0,正常登录操作", "登录成功，进入完善资料界面或班级列表界面", "pass");
			} else {
				Log.d(TAG, "当前user_type=0,登录失败");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=0,正常登录操作", "登录成功，进入完善资料界面或班级列表界面", "fail");
				assertTrue(false);
			}

		} else if (user_type.equals("75") && name.equals("")) {// 25表示家长

			if (solo.waitForText("^完善个人资料$")) {
				Log.d(TAG, "登录成功");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=75,name=null,正常登录操作", "登录成功，进入完善资料界面或班级列表界面",
						"pass");
			} else {
				Log.d(TAG, "登录失败");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=75,name=null,正常登录操作", "登录成功，进入完善资料界面或班级列表界面",
						"fail");
				assertTrue(false);
			}

		} else if (user_type.equals("25") && name.equals("")) {

			if (solo.waitForText("^完善个人资料$")) {

				Log.d(TAG, "登录成功");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=25,name=null,正常登录操作", "登录成功，进入完善资料界面或班级列表界面",
						"pass");
			} else {

				Log.d(TAG, "登录失败");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=25,name=null,正常登录操作", "登录成功，进入完善资料界面或班级列表界面",
						"fail");
				assertTrue(false);
			}

		} else if ((user_type.equals("25") || user_type.equals("75")) && !name.equals("")) {

			if (solo.waitForText("^我的班级$") && solo.waitForActivity("MainActivity")) {
				Log.d(TAG, "登录成功");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=25或75,name不为空,正常登录操作",
						"登录成功，进入完善资料界面或班级列表界面", "pass");
			} else {
				Log.d(TAG, "登录失败");
				t.printTestResultToExcel(cl_Name + getName(), "当前user_type=25或75,name不为空,正常登录操作",
						"登录成功，进入完善资料界面或班级列表界面", "fail");
				assertTrue(false);
			}
		}
	}
}
